package com.future.allUtils.enums;

import java.time.LocalDateTime;

/**
 * 角色枚举：映射角色名称与角色ID
 * 角色ID需与数据库role表中的id一致
 */
public enum RoleEnum {
    // 枚举项：角色名称(数据库role_name) -> 角色ID(数据库role.id)
    STUDENT("学生", 1),
    TEACHER("教师", 2),
    PSYCHOLOGIST("心理医生", 3),
    ADMIN("超级管理员", 4);



    // 角色名称（与前端传递的角色名称一致）
    private final String roleName;
    // 角色ID（与数据库role表的id字段一致）
    private final Integer roleId;

    // 构造方法：初始化角色名称和ID
    RoleEnum(String roleName, Integer roleId) {
        this.roleName = roleName;
        this.roleId = roleId;
    }

    //根据角色名称获取枚举对象（用于校验和映射）
    public static RoleEnum getByRoleName(String roleName) {
        // 遍历所有枚举项，匹配角色名称
        for (RoleEnum role : values()) {
            if (role.roleName.equals(roleName)) {
                return role;
            }
        }
        return null; // 未匹配到返回null（无效角色）
    }

    public static RoleEnum getByRoleId(Integer roleId) {
        // 遍历所有枚举项，匹配角色ID
        for (RoleEnum role : values()) {
            if (role.roleId.equals(roleId)) {
                return role;
            }
        }
        return null; // 未匹配到返回null（无效角色）
    }

    // getter方法：对外提供角色名称和ID
    public String getRoleName() {
        return roleName;
    }

    public Integer getRoleId() {
        return roleId;
    }
}